#pragma once

namespace SL
{

/**
 * @brief
 * collections of SRV and UAV handles
 */
struct ShaderViews
{};
struct RenderHandle
{};

/**
 * @brief
 * equals register space (vulkan set)
 * {
 *      // space0
 *      ShaderArgument(materialConstants.buffer, materialConstantsOffset, materialShaderViews),

 *      // space1
 *      ShaderArgument(geometryConstants.buffer, geometryConstantsOffset, geometryShaderViews)
 *  },
 */
class ShaderArgument
{
    RenderHandle constantBufferHandle;
    unsigned int constantBufferOffset;
    ShaderViews shaderViewsHandle;
};


} // namespace SL